python3小白课:字典的常用方法
本节课我们来大概将一些字典自带的常用方法。
看例子:
# coding:utf-8
# 查看有哪些内置方法?(注意忽略私有方法和特殊方法)
print(dir(dict))
a = {
1: 90,
"1": 89,
(1,): 100,
"语文": 90,
"数学": 89,
"计算机": 100,
"英语": 89.57
}
# clear,跟列表元组一样,会将字典变为空字典,copy方法可以复制一个字典副本
# 注意不要用b = a这样的写法,这样写clear b时,a也会变空字典
b = a.copy()
b.clear()
print(b)
# get方法非常非常常用,用来取字典中某个键的值,使用[]取值如果键不存在会报错,但get方法取值不存在时,
# 会返回None,或者可以指定第二个参数作为返回值。因此,实际编写中更推荐用get而弃用[],除非你百分百保证存在该键
print(a.get("语文"))
print(a.get("美术"))
# 你也可以指定返回值
print(a.get("美术", 1))
# 我们需要区别于setdefault方法,这个方法可以设置一个键的默认值,当这个键找得到时,与get等效,返回值
# 但当这个键不存在时,setdefault会给字典新增这个键并赋值给的默认值,而get不会新增键
print(a.setdefault("美术", 99)) # 键不存在,返回设定的第二个参数并添加键到字典中
print(a)
print(a.setdefault("美术", 98)) # 这次键存在,因此不会修改它的值,可以返回
print(a)
# update方法可以用新字典包含的键值对来更新原有字典,当原有字典存在该键时,则更新
# 当原有字典不存在对应键时,则添加该键值对进去
a.update({"语文":0, "体育": 92})
print(a)
"""
上述的一些命令是在我们知道这个字典有什么key的情况下,有的时候,我们不知道这个字典有什么键。
有什么办法能够获取键的列表以及值的列表呢?
使用items()方法可以获取字典的每个键值对,通过list命令转化成列表,每个元素是一个键值对元组。
使用keys()方法可以获取字典的每个键,通过list命令转化成列表,每个元素是一个键名。
使用values()方法可以获取字典的每个值,通过list命令转化成列表,每个元素是一个值。
***这几个方法在做字典枚举时非常有用,请务必掌握。***
"""
print(list(a.items()))
print(list(a.keys()))
print(list(a.values()))
# pop方法用于弹出某个键值对,并删除它,找得到会返回对应的值,找不到会报错,跟列表类似
print(a.pop("语文"))
print(a)
# popitem方法可以弹出某个键值对,实际是弹出底层存储的最后一个键值对并删除
# 由于python的字典没有顺序,我们不能说是定义的最后一个,而是底层存储的最后一个
print(a.popitem())
print(a)
# 你也可以用两个变量分别接收键和值
k, v = a.popitem()
print(k, v)
print(a)
# fromkeys方法可以批量创建指定key的字典,还能给默认值。个人很少用这个感觉
# 用列表创建,不给默认值时值默认为None
a = dict.fromkeys(['a', 'b'])
print(a)
# 用元组创建
a = dict.fromkeys(('a', 'b'))
print(a)
# 指定默认值
a = dict.fromkeys(['a', 'b'], "我是默认值")
print(a)
# 如果是这样呢?会不会分别给a、b赋值默认值?请自行尝试
a = dict.fromkeys(['a', 'b'], ["我是默认值","111"])
print(a)
# 附送一个,利用字典来给列表去重的方法,尤其适用在列表元素量很大时,很方便
a = [1, 0, 3, 7, 7, 5, 5, 0, 1]
newList = list({}.fromkeys(a).keys())
print(newList)
单词释义
| 单词 | 释义 |
|---|---|
| clear | 清除,清理 |
| copy | 复制 |
| get | 获得,得到 |
| setdefault | set设置,default默认,合起来就是设置默认值 |
| update | 更新 |
| items | 项目,一件东西(复数) |
| keys | key键的复数 |
| values | value值的赋值 |
| pop | 出栈 |
| popitem | pop item两个单词合起来,将一件东西出栈,这里是把键值对抛出字典外 |
| fromkeys | from来自...,keys,键的复数,合起来就是以很多键来怎么怎么样的意思 |